#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

// 定义缓冲区大小
#define MAX 1024

// 定义刷新方式
#define NONE_FLUSH (1 << 0)
#define LINE_FLUSH (1 << 1)
#define FULL_FLUSH (1 << 2)

// 定义FILE结构体
typedef struct IO_FILE
{
    int flush_method;    // 刷新方式
    int fileno;          // 文件描述符
    char outbuffer[MAX]; // 缓冲区
    int bufferlen;       // 缓冲区有效字符数
} MyFILE;

MyFILE *mfopen(const char *file_name, const char *mode);

int mfwrite(MyFILE *stream, void *str, int len);

void mfclose(MyFILE *stream);

void mfflush(MyFILE *stream);